package com.holly.unit.bpmn.api;

import com.holly.unit.bpmn.api.pojo.BpmnUser;
import com.holly.unit.bpmn.api.pojo.NewsTemplate;

import java.util.List;
import java.util.Map;

/**
 * 接口描述: 工作流相关API
 *
 * @author fxr
 * @version 1.0.0
 * @date 2022/1/27 15:23
 */
public interface WorkflowApi {

    /***
     * 发送通知
     * @param fromUser 发送人
     * @param toUser 接收人
     * @param title 标题
     * @param msgText 信息内容
     * @param sendMessage 系统消息
     * @param sendSms 短信
     * @param sendEmail 邮件
     */
    void sendMessage(BpmnUser fromUser, BpmnUser toUser, String title, String msgText, Boolean sendMessage, Boolean sendSms, Boolean sendEmail);


    /***
     * 通过消息中心模板，生成推送内容
     * @param newsTemplate 使用构造器赋值参数
     * @return
     */
    String parseTemplateByCode(NewsTemplate newsTemplate);


    /***
     * 根据流程定义id 获取流程节点中的StartEvent 节点
     * @param processDefinitionId 流程定义id
     * @return {name,id,type}
     */
    List<Map<String,Object>> fetchProcessNodesByProcessDefinitionId(String processDefinitionId);

    /***
     * 根据流程定义id 获取流程节点中的StartEvent 节点
     * @param processDefinitionId 流程定义id
     * @return {name,id,type}
     */
    Map<String,Object> fetchStartEventNodeByProcessDefinitionId(String processDefinitionId);

    /***
     * 根据流程定义id 节点Id获取权限
     * @param processId 流程定义id
     * @return {name,id,type}
     */
    Map<String, String> fetchActColByTaskId(String processId,String taskId,String routeId);

}
